Add support for lexical variables to the debugger's `e' command.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 26 Jul 2013 07:38:18 +0000 (03:38 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 26 Jul 2013 07:38:18 +0000 (03:38 -0400)
commit31450c725f171c44bc8b67a51711c64aa0bbeb19
tree1c02b826d31606e8afa044595357781d0c4d6e59
parente224e5a94ccbeeac2a8d185cad62cb1ff4a22a6e
Add support for lexical variables to the debugger's `e' command.
* lisp/emacs-lisp/debug.el (debug): Don't let-bind the debugger-outer-*
vars, except for debugger-outer-match-data.
(debugger-frame-number): Move check for "on a function call" from
callers into it.  Add `skip-base' argument.
(debugger-frame, debugger-frame-clear): Simplify accordingly.
(debugger-env-macro): Only reset the state stored in non-variables,
i.e. current-buffer and match-data.
(debugger-eval-expression): Rewrite using backtrace-eval.
* lisp/subr.el (internal--called-interactively-p--get-frame): Remove.
(called-interactively-p):
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): Use the new
`base' arg of backtrace-frame instead.
* src/eval.c (set_specpdl_old_value): New function.
(unbind_to): Minor simplification.
(get_backtrace_frame): New function.
(Fbacktrace_frame): Use it.  Add `base' argument.
(backtrace_eval_unrewind, Fbacktrace_eval): New functions.
(syms_of_eval): Export backtrace-eval.
* src/xterm.c (x_focus_changed): Simplify.
etc/NEWS
lisp/ChangeLog
lisp/emacs-lisp/debug.el
lisp/emacs-lisp/edebug.el
lisp/subr.el
src/ChangeLog
src/eval.c
src/xterm.c